package com.wwdx.service;

import com.wwdx.model.WwdxOrderModel;
import com.wwdx.model.dto.BaseActivityDTO;
import com.wwdx.model.dto.BasePayDTO;

import java.math.BigDecimal;

/**
 * @author liguoliang
 */
public interface PayServiceI {

    /**
     * 生成订单
     * @param model 订单参数
     * @param orderno 订单ID
     * @return 订单信息
     */
    BasePayDTO.PayModel save(WwdxOrderModel model, String orderno);

    /**
     * 订单回调
     * @param dto 回调参数
     */
    void payBackHandler(BasePayDTO.PayCallBackDTO dto);

    /**
     * 优惠卷购买
     * @param unionId 用户业务ID
     * @param price 产品价格
     * @return 优惠后价格
     */
    BigDecimal purchaseCoupon(String unionId,BigDecimal price);

    /**
     * VIP充值
     * @param unionid 用户业务ID
     * @param productId 会员产品ID
     */
    void vipRecharge(String unionid,Long productId);

    /**
     * 保存赠一得一订单
     * @param dto 订单属性类
     */
    void executeGiveoneOrder(BaseActivityDTO.GiveOneBusinessDTO dto);
}